﻿// =================================================================== 
// 项目说明
//====================================================================
// 文件： ERP_Use.cs
// 创建时间：2016/11/30
// 负责人：
// ===================================================================
using System;
using System.Data;
using System.Collections.Generic;
using CommonLib.BLL;
using CommonLib.Model;
using CRMMis.Model;
using CRMMis.IDAL;
using CRMMis.DALFactory;

//注意：该文件自动生成，一般请不要手工修改。


namespace CRMMis.BLL
{
    /// <summary>
    ///   的BLL Base层
    /// </summary>
    public class ERP_UseBLLBase
    {
		#region ----------变量定义----------
		///<summary>
		///
		///</summary>
		public static readonly IERP_UseDAL _dal=(IERP_UseDAL)DataAccessFactory.CreateObject("ERP_UseDAL");
		#endregion
		
		#region ----------构造函数----------
		/// <summary>
		/// 构造函数
		/// </summary>
		public ERP_UseBLLBase()
		{
		}
		#endregion

		
		//------------增删改函数------------------- 
		
		#region Add 向数据库中插入一条新记录。

		/// <summary>
		/// 向数据库ERP_Use中插入一条新记录。
		/// </summary>
		/// <param name="oERP_UseInfo">实体</param>
		/// <returns>影响的行数</returns>
		public static int Add(CRMMis.Model.ERP_Use oERP_UseInfo)
		{
			// Validate input
			if (oERP_UseInfo == null)
				return 0;
			// Use the dal to insert a new record 
			return _dal.Add(oERP_UseInfo);
		}
		#endregion
		
		#region Add 向数据库中插入一条新记录。带事务
		/// <summary>
		/// 向数据库ERP_Use中插入一条新记录。带事务
		/// </summary>
		/// <param name="sp">事务对象</param>
		/// <param name="oERP_UseInfo">实体</param>
		/// <returns>影响的行数</returns>
		public static int Add(MyTransaction myTrans,CRMMis.Model.ERP_Use oERP_UseInfo)
		{
			if (oERP_UseInfo == null)
				return 0;
			// Use the dal to insert a new record 
			return _dal.Add(myTrans.dbTrans,oERP_UseInfo);
		}
		#endregion
		
		#region	Update 向数据表更新一条记录。	
		/// <summary>
		/// 向数据表ERP_Use更新一条记录。
		/// </summary>
		/// <param name="oERP_UseInfo">实体</param>
		/// <returns>影响的行数</returns>
		public  static int Update(CRMMis.Model.ERP_Use oERP_UseInfo)
		{
            // Validate input
			if (oERP_UseInfo==null)
				return 0;
			// Use the dal to update a new record 
			return _dal.Update(oERP_UseInfo);
		}
		#endregion
		
		#region	Update 向数据表更新一条记录。带事务	
		/// <summary>
		/// 向数据表ERP_Use更新一条记录。带事务
		/// </summary>
		/// <param name="sp">事务对象</param>
		/// <param name="oERP_UseInfo">实体</param>
		/// <returns>影响的行数</returns>
		public static int Update(MyTransaction myTrans,CRMMis.Model.ERP_Use oERP_UseInfo)
		{
			// Validate input
			if (oERP_UseInfo==null)
				return 0;
			// Use the dal to update a new record 
			return _dal.Update(myTrans.dbTrans,oERP_UseInfo);
		}
		#endregion
        
        #region 根据主键出对象，修改数据，并更新
        /// <summary>
        /// 根据主键查出对象，修改数据，并更新
        /// </summary>
        /// <param name="int use_ID">主键列表</param>
        /// <param name="changeModel">修改事件(返回true继续修改,返回false则不修改)</param>
        /// <returns></returns>
        public static int UpdataModelByWhere(int use_ID , Func<CRMMis.Model.ERP_Use, bool> changeModel)
        {
            var model = GetModel(use_ID );
            var b = changeModel(model);
            if (!b || model == null)
                return 0;
            int r = Update(model);
            return r;
        }
        #endregion
        
        #region 根据where条件（多条记录只返回第一条）查出对象，修改数据，并更新
        /// <summary>
        /// 根据where条件（多条记录只返回第一条）查出对象，修改数据，并更新
        /// </summary>
        /// <param name="sWhere">where条件</param>
        /// <param name="changeModel">修改事件(返回true继续修改,返回false则不修改)</param>
        /// <returns></returns>
        public static int UpdataModelByWhere(string sWhere, Func<CRMMis.Model.ERP_Use, bool> changeModel)
        {
            var model = GetModel(sWhere);
            var b = changeModel(model);
            if (!b || model == null)
                return 0;
            int r = Update(model);
            return r;
        }
        #endregion
		
		#region	Delete 删除数据表中的一条记录	
		/// <summary>
		/// 删除数据表ERP_Use中的一条记录
		/// </summary>
	    /// <param name="use_ID">use_ID</param>
		/// <returns>影响的行数</returns>
		public static int Delete(int use_ID)
		{
			// Validate input
			if(use_ID<0)
				return 0;
			return _dal.Delete(use_ID);
		}
		#endregion
		
		#region	Delete 删除数据表中的一条记录 	
		/// <summary>
		/// 删除数据表ERP_Use中的一条记录 
		/// </summary>
		/// <param name="sp">事务对象</param>
	    /// <param name="Use_ID">use_ID</param>
		/// <returns>影响的行数</returns>
		public static int Delete(MyTransaction myTrans,int use_ID)
		{
			// Validate input
			if(use_ID<0)
				return 0;
			return _dal.Delete(myTrans.dbTrans,use_ID);
		}
		#endregion
		
		#region	DeleteFK 根据条件串，删除数据表中的N条记录	
		/// <summary>
		/// 根据条件串，删除数据表ERP_Use中的N条记录
		/// </summary>
	    /// <param name="sWhere">条件串</param>
		/// <returns>影响的行数</returns>
		public static int DeleteFK(string sWhere)
		{
			return _dal.DeleteFK(sWhere);
		}
		#endregion
		
		#region	DeleteFK 根据条件串，删除数据表中的N条记录,带事务	
		/// <summary>
		/// 根据条件串，删除数据表ERP_Use中的N条记录,带事务
		/// </summary>
		/// <param name="sp">事务对象</param>
	    /// <param name="sWhere">条件串</param>
		/// <returns>影响的行数</returns>
		public static int DeleteFK(MyTransaction myTrans,string sWhere)
		{
			return _dal.DeleteFK(myTrans.dbTrans,sWhere);
		}
		
		#endregion
		
		
		//------------获取数据及模型函数


		
		#region Exists 检测是否存在该主键
		/// <summary>
        /// 检测是否存在该主键
        /// </summary>
        /// <param name="int use_ID"> 主键列表</param>
        /// <returns>是/否</returns>
		public static bool Exists(int use_ID)
		{
			return _dal.Exists(use_ID);
		}
		#endregion

		#region GetModel 得到数据实体
        /// <summary>
		/// 得到 erp_use 数据实体
		/// </summary>
		/// <param name="int use_ID"> 主键列表</param>
		/// <returns>erp_use 数据实体</returns>
		public static CRMMis.Model.ERP_Use GetModel(int use_ID )
		{
			// Validate input
			if(use_ID<0)
				return null;

			// Use the dal to get a record 
			return _dal.GetModel(use_ID);
		}
		#endregion
        
        #region GetModel 得到数据实体
        /// <summary>
        /// 根据where条件,得到 erp_use 数据实体
        /// <para>如果存在多条，则返回第一条</para>
        /// </summary>
        /// <param name="sWhere" where条件</param>
        /// <returns> erp_use 数据实体</returns>
		public static CRMMis.Model.ERP_Use GetModel(string sWhere)
		{
			// Use the dal to get a record 
			return _dal.GetModel(sWhere);
		}
		#endregion

		#region GetModel 得到数据实体，带事务
        /// <summary>
		/// 得到 erp_use 数据实体，带事务
		/// </summary>
		/// <param name="int use_ID"> 主键列表</param>
		/// <returns>erp_use 数据实体</returns>
		public static CRMMis.Model.ERP_Use GetModel(MyTransaction myTrans,int use_ID )
		{
			// Validate input
			if(use_ID<0)
				return null;

			// Use the dal to get a record 
			return _dal.GetModel(myTrans.dbTrans,use_ID);
		}
		#endregion
        
        #region GetModel 得到数据实体，带事务
        /// <summary>
        /// 根据where条件,得到 erp_use 数据实体，带事务
        /// <para>如果存在多条，则返回第一条</para>
        /// </summary>
        /// <param name="sWhere" where条件</param>
        /// <returns> erp_use 数据实体</returns>
		public static CRMMis.Model.ERP_Use GetModel(MyTransaction myTrans,string sWhere)
		{
			// Use the dal to get a record 
			return _dal.GetModel(myTrans.dbTrans,sWhere);
		}
		#endregion

		#region GetNewID 通过种子得到唯一ID,对单主键有效单，如果该表为多主键，则返回第一主键
		/// <summary>
        ///  通过种子得到唯一ID,对单主键有效单，如果该表为多主键，则返回第一主键
        /// </summary>
        /// <param name=""></param>
        /// <returns>新的int类型的ID</returns>
		public static int GetNewID()
		{
			return  _dal.GetNewID();
		}
		#endregion

		#region	GetMaxID 得到最大ID	
		/// <summary>
		/// 得到最大ID
		/// </summary>
        /// <param name=""></param>
        /// <returns>int类型的最大值 </returns>
		public static int GetMaxID()
		{
			return  _dal.GetMaxID();
		}
		#endregion
		
		#region	GetList 根据条件得到记录集, 参数：条件，排序	
		/// <summary>
		/// 根据条件得到记录集, 参数：条件，排序
		/// </summary>
        /// <param name="sWhere">条件字符串</param>
		/// <param name="sOder">排序字段</param>
        /// <returns>DataSet</returns>
		public static DataSet GetList(string sWhere, string sOder)
		{
			// Use the dal to get all records 
			return _dal.GetList(sWhere, sOder);
		}
		#endregion		
		
		#region GetList	根据条件得到记录集， 参数：条件	
		/// <summary>
		/// 根据条件得到记录集，参数：条件
		/// </summary>
        /// <param name="sWhere">条件字符串</param>
        /// <returns>DataSet</returns>
		public static DataSet GetList(string sWhere)
		{
			// Use the dal to get all records 
			return _dal.GetList(sWhere, "");
		}
		#endregion
        
        #region	GetList 根据条件得到记录集, 参数：条件，排序，带事务	
		/// <summary>
		/// 根据条件得到记录集, 参数：条件，排序，带事务
		/// </summary>
        /// <param name="myTrans">事务对象</param>
        /// <param name="sWhere">条件字符串</param>
		/// <param name="sOder">排序字段</param>
        /// <returns>DataSet</returns>
		public static DataSet GetList(MyTransaction myTrans, string sWhere, string sOder)
		{
			// Use the dal to get all records 
			return _dal.GetList(myTrans.dbTrans, sWhere, sOder);
		}
		#endregion		
		
		#region GetList	根据条件得到记录集， 参数：条件，带事务
		/// <summary>
		/// 根据条件得到记录集，参数：条件，带事务
		/// </summary>
        /// <param name="myTrans">事务对象</param>
        /// <param name="sWhere">条件字符串</param>
        /// <returns>DataSet</returns>
		public static DataSet GetList(MyTransaction myTrans, string sWhere)
		{
			// Use the dal to get all records 
			return _dal.GetList(myTrans.dbTrans, sWhere, "");
		}
		#endregion

		#region GetPageList 根据条件和页号得到某页的记录集,参数：iPageSize, iPageIndex, sWhere, sOder
		/// <summary>
		/// 根据条件和页号得到某页的记录集
		/// </summary>
        /// <param name="iPageSize">每页记录数</param>
		/// <param name="iPageIndex">页号</param>
		/// <param name="sWhere">条件字符串</param>
		/// <param name="sOder">排序字段</param>
        /// <returns>DataSet</returns>
		public static DataSet GetPageList(int iPageSize,int iPageIndex, string sWhere, string sOder)
		{
			// Use the dal to get all records 
			return _dal.GetPageList(iPageSize,iPageIndex,sWhere,sOder);
		}
		#endregion
		
		
		#region	GetAllList 得到数据表所有记录


		/// <summary>
		/// 得到数据表ERP_Use所有记录
		/// </summary>
		/// <returns>DataSet</returns>
		public static DataSet GetAllList()
		{
			// Use the dal to get all records 
			return _dal.GetList("","");
		}
		#endregion

		#region	GetAllList 得到数据表所有记录，排序
		/// <summary>
		/// 得到数据表ERP_Use所有记录，排序
		/// </summary>
        /// <param name="sOder">排序字段</param>
		/// <returns>DataSet</returns>
		public static DataSet GetAllList(string sOder)
		{
			// Use the dal to get all records 
			return _dal.GetList("", sOder);
		}

		#endregion
		
		#region GetRecorderRowNum 判断某条记录所在的行号，调用者自己计算页号和行号
		/// <summary>
		/// 判断某条记录所在的行号，调用者自己计算页号和行号
		/// </summary>
        /// <param name="iPageSize">每页记录数</param>
		/// <param name="主键列表">主键列表</param>
        /// <returns>int 页码</returns>
		public static int GetRecorderRowNum(string sWhere, string sOder, int iPageSize, int use_ID)
		{
			// Use the dal to get all records 
			return _dal.GetRecorderRowNum(sWhere, sOder, iPageSize, use_ID);
		}
		#endregion

		#region GetRecorderCount 得到符合条件记录集的记录条数， 参数：条件

		/// <summary>
		/// 得到符合条件记录集的记录条数
		/// </summary>
        /// <param name="sWhere">条件字符串</param>
        /// <returns>int 记录数</returns>
		public static int GetRecorderCount(string sWhere)
		{
			// Use the dal to get all records 
			return _dal.GetRecorderCount("", sWhere);
		}
		#endregion
		
		
		
    }
}
